from git import Repo
import os
import subprocess

# 从git仓库上拉取代码

# 克隆一个Git仓库
def clone_repo(repo_url, destination_folder):
    Repo.clone_from(repo_url, destination_folder)


# main
def clone_repo(git_url, destination_folder):
    """
    使用 git clone 命令克隆仓库
    :param git_url: 仓库的 URL
    :param destination_folder: 目标文件夹路径
    """
    # 使用 subprocess.run 来执行 git clone 命令
    # 注意：这里假设已经安装了 git 并且 git 命令在 PATH 环境变量中
    try:
        subprocess.run(['git', 'clone', git_url, destination_folder], check=True)
    except subprocess.CalledProcessError as e:
        print(f"Error cloning repository: {e}")


def git_main(git_url):
    # 创建存放代码的文件夹
    # 定义要创建的文件夹路径
    new_folder_path = "./java"

    # 使用 os 模块检查文件夹是否存在，如果不存在则创建
    if not os.path.exists(new_folder_path):
        try:
            os.makedirs(new_folder_path)  # 使用 makedirs 以支持多级目录的创建
        except OSError as e:
            print(f"Error creating directory: {e.strerror}")
            return
            # 目标文件夹
    destination_folder = "./java/project"
    # 克隆仓库
    clone_repo(git_url, destination_folder)
    print("git ok")


if __name__ == '__main__':
    repo_url = "https://gitee.com/dromara/hutool.git"
    git_main(repo_url)
